The life cycle of a computer program includes two key phases, development and deployment. Currently, complete application development is performed on premise within an enterprise or organization. On premise application development requires up front capital investments, including procuring the necessary hardware and software for the development environment, obtaining the necessary licenses, as well as creating the required development and maintenance processes, such as project tracking, quality assessment, and people management. No turnkey approach is available for provisioning application development and deployment, i.e., the entire computer program life cycle, off premise in a platform.
Cloud computing currently provides for off premise computer program deployment on the cloud. Cloud computing relates to the delivery of computing as a service rather than a product, whereby resources, computer programs, and information are provided to computers and other devices as a utility over a network. Additionally, cloud computing provides computation, computer programs, data access and management, and storage resources without requiring cloud users to know the location and other details of the computing infrastructure.
Industry standard cloud models such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) support only finished application hosting. None of the existing cloud models supports the entire computer program life cycle, i.e., real-time computer program development and deployment on the cloud.